A typical business enterprise can be characterized as a process having a global objective that is an aggregation of distributed, but interconnected local processes. The local processes accomplish tasks that contribute to producing the finished product of the business enterprise. Each local process requires certain local inputs and generates certain local outputs, at least some of which impact the finished product and the global objective. The outputs from certain processes are inputs into other processes. These cascaded input-output relationships define an ordered arrangement of the processes. The output of the terminal process in the chain is the finished product which corresponds to some global objective of the business, an objective that is often financial. One common objective, for example, is maximizing the profit of the enterprise; the corresponding global output of the terminal process in the hierarchy of contributing processes is the actual profit of the enterprise. These processes may be described by a directed graph and may be identified as part of a production flow analysis, company flow analysis or factory flow analysis, for example. These processes may be charted in a material flow network diagram or similar flow chart.
FIG. 1 is a diagram illustrating a system 100 of interconnected nodes, processes p1 and p2, that contribute to the output of a business enterprise with the characteristic process flow discussed above. Process p1 has two inputs x1 and x2 and two outputs y1 and y2. In the illustrated example, inputs x1 and x2 are external inputs to the system 100 that are not output from another process. The inputs x1 and x2 may be, for example, controllable variables that can be set directly by a control system or operator. They may also be variables defined by the external environment in which the enterprise operates. The output y1 is a local output generated by process p1 that does not contribute to the final output. Output y2 is a local output, and, chained as an input to another process, forms an intermediate input to the second process, i.e., one that is not directly controllable. Output y2 is a component of the finished product. At the terminal node, process p2 has two inputs y2, corresponding to the output of p1, and x3, and one output y3. Output y3 is a global output or the finished product of the system 100. The interrelationships between the inputs and outputs of processes define different stages in the process flow, based on the number of processes between a particular input or output and the terminal node. As discussed herein, later stages are more proximate to the terminal node and to the global output, which is the output of the terminal node, than earlier stages.
A large enterprise may be composed of a large number of processes like processes p1 and p2, each of which has complex interconnections with many other processes. These interconnections may define a deeply nested aggregate process with a complex structure. The interconnections between the processes create complex relationships between the external inputs, some of which are controllable, as well as the intermediate inputs, and the global output. As the size of the enterprise increases, it becomes an increasingly difficult problem to trace the relationship between a particular variable and the global output. Each local process is typically designed to optimize its local outputs within parameters or heuristic guidelines that are expected to optimize the global objective based on the individual contribution of that process. The effects of interconnecting all of these processes from a global perspective to produce the final output are typically not well understood or well tested. In many real-world applications, interconnecting such locally optimized processes may yield a solution that is adequate, but processes having local objectives individually selected with a view to satisfying a global objective may not optimize the global objective when functioning in combination. Local optimization may have unintended and even counterproductive effects on the global objective.
The problem may be further compounded because information is not effectively shared throughout a typical enterprise-wide system. Individual processes may be managed by specialized process management software designed to optimize certain local outputs in view of process-specific phenomena and considerations. These processes and the process management software may be distributed across many different systems using different platforms, data formats, etc. Individual processes may be able to take data from other processes into account only to a limited extent. In addition, the enterprise is a dynamic system that functions and varies continuously and is constantly subjected to fluctuations in the external inputs, requiring repeated re-evaluation of the local objectives and local inputs and possibly even redefinition of the local processes.
It is desirable to globally optimize the single objective of the enterprise, taking the inter and intra-process interactions as well as external input fluctuations into account. Accordingly, it is desirable to coordinate between the various processes in the enterprise. It is desirable to have a global view of the contribution of each variable on the finished product and to determine the impact of adjustments to each external and intermediate input on the finished product, especially in real-time.